console.log(`
   
   ▒█████ ██   ██  ▄████▄   ██ ▄█▀       ██████╗ ██╗   ██╗ ██████╗
  ▒██   ▒███  ▓██▒▒██▀ ▀█   ██▄█▒        ██╔══██╗██║   ██║██╔════╝
  ▒█████░▓██  ▒██░▒▓█    ▄ ▓███▄░        ██████╔╝██║   ██║██║  ███╗
  ░██▒  ░▓██  ░██░▒▓▓▄ ▄██▒▓██ █▄        ██╔══██╗██║   ██║██║   ██║
  ░██░   ▒▒██████ ▒ ▓███▀ ░▒██▒ █▄       ██████╔╝╚██████╔╝╚██████╔╝
   ▒ ░   ░▒▓▒ ▒ ▒ ░ ░▒ ▒  ░▒ ▒▒ ▓▒       ╚═════╝  ╚═════╝  ╚═════╝
   ░     ░░▒░ ░ ░   ░  ▒   ░ ░▒ ▒░
   ░ ░    ░░░ ░ ░ ░        ░ ░░ ░
            ░     ░ ░      ░  ░

`);

/*
	@filename: set.js
	@description: 实现设置窗口的交互事件以及配置保存功能
	@author: HUIB菌
	@version：v1.0
	@date：2023/9/24
*/



require.config({
	paths: {
		"jquery": ["res/static/js/jquery-1.9.1.min"],
		"layui": ["res/static/layui/layui"],
		"GHAPI": ["res/js/api"]
	},
	shim: {
		"layui": {
			exports: "layui"
		},
		"GHAPI": {
			exports: "GHAPI"
		},
	}
});

require(["jquery", "layui", "GHAPI"], function($, layui, GHAPI) {

	GHAPI.prevent.onselectstart();


	// 设置窗口基础事件
	$(function() {
		// 加载窗口动画
		setTimeout(function(){
			$("body").addClass("fade_in");
		},200)
		
		
		// 窗口移动
		$(".win_title .win_drag").mousedown(async function() {
			GHAPI.Win.hitCaption();
		});

		// 关闭窗口
		$(".win_btn.close").click(async function() {
			$(".win_from").fadeOut(300, function() {
				aardio.closeWin();
				//GHAPI.Win.close();
			});
		});

		// 最小化
		$(".win_btn.min").click(async function() {
			GHAPI.Win.hitMin();
		});

		// 最大化
		$(".win_btn.max").click(function() {
			$("#set").toggleClass("win_max");
			GHAPI.Win.hitMax();
		});


		// 左侧导航栏事件
		layui.use(function() {
			let dropdown = layui.dropdown;
			let layer = layui.layer;
			let util = layui.util;

			dropdown.on('click(nav)', function(options) {
				let winPageId = options.id;
				let e = $("#set .right");

				if (winPageId == 1) {
					e.animate({ scrollTop: "0px" }, { duration: 400 });
				} else if (winPageId == 2) {
					e.animate({ scrollTop: "216px" }, { duration: 400 });
				} else if (winPageId == 3) {
					e.animate({ scrollTop: "514px" }, { duration: 400 });
				} else if (winPageId == 4) {
					e.animate({ scrollTop: "736px" }, { duration: 400 });
				} else if (winPageId == 5) {
					e.animate({ scrollTop: "888px" }, { duration: 400 });
				}
			});
		});

		// 右侧滚动事件
		$("#set .right").scroll(function() {
			let scrollTop = $(this).scrollTop();
			if (scrollTop >= 840) {
				$("#set #nav li").removeClass("layui-menu-item-checked");
				$("#set #nav li").eq(4).addClass("layui-menu-item-checked");
			} else if (scrollTop >= 700) {
				$("#set #nav li").removeClass("layui-menu-item-checked");
				$("#set #nav li").eq(3).addClass("layui-menu-item-checked");
			} else if (scrollTop >= 400) {
				$("#set #nav li").removeClass("layui-menu-item-checked");
				$("#set #nav li").eq(2).addClass("layui-menu-item-checked");
			} else if (scrollTop >= 180) {
				$("#set #nav li").removeClass("layui-menu-item-checked");
				$("#set #nav li").eq(1).addClass("layui-menu-item-checked");
			} else if (scrollTop >= 0) {
				$("#set #nav li").removeClass("layui-menu-item-checked");
				$("#set #nav li").eq(0).addClass("layui-menu-item-checked");
			}
		});


		// 关于页事件
		$("#set .about .link").click(function() {
			let href = $(this).attr("href");
			if (href == "qq_QRcode") {
				layer.open({
					type: 1,
					area: ['300px', '330px'],
					title: false,
					closeBtn: 0,
					shadeClose: true,
					content: `
						<div class="msg_box">
							<img src="res/static/img/qq_code.jpg">
							<div class="title">手机扫码添加QQ好友</div>
						</div>`
				});
			} else if (href == "wechat_QRcode") {
				layer.open({
					type: 1,
					area: ['300px', '330px'],
					title: false,
					closeBtn: 0,
					shadeClose: true,
					content: `
						<div class="msg_box">
							<img src="res/static/img/wechat_code.jpg">
							<div class="title">手机扫码添加微信好友</div>
						</div>`
				});
			} else {
				GHAPI.Win.openURL(href);
			}

		});


		// 右侧设置 选择框点击事件
		// 主要用于梳理选择框展开后的层次关系，避免展开框被其他元素遮挡
		$("#set .right .select").click(function() {
			$("#set .right .select").each(function() {
				$(this).css("z-index", "1");
			});
			$(this).css("z-index", "99");
		});
	});


	// 配置文件 事件
	$(function() {

		layui.use(['layer', 'element', 'form'], function() {
			const { layer } = layui;
			const { form } = layui;
			const { element } = layui;
			const { upload } = layui;
			const { $ } = layui;
			let config = {
				color: {
					History: Array(), // 历史颜色
					Collect: Array() // 常用颜色
				},
				set: {
					General: {}, // 通用设置
					Function: {}, // 功能设置
					Hotkeys: {}, // 热键设置
					Other: {} // 其他设置
				}
			};

			/*
				加载配置文件
			*/
			function loadConfig() {

				// 读取配置文件
				config = GHAPI.Win.read_Config("/web/res/lib/set.json", true);
				config.then(function(result) {
					config = result;

					// 更新组件状态
					form.val('1', config.set.General);
					form.val('2', config.set.Function);
					form.val('3', config.set.Hotkeys);
					form.val('4', config.set.Other);
					form.render();
				});
			}


			/*
				保存配置文件
			*/
			function saveConfig() {

				// 获取组件状态
				config.set.General = form.val('1');
				config.set.Function = form.val('2');
				config.set.Hotkeys = form.val('3');
				config.set.Other = form.val('4');

				// 保存配置文件
				GHAPI.Win.write_Config("/web/res/lib/set.json", config, true);
			}



			// 执行 配置文件加载
			loadConfig();


			// 绑定组件事件 保存配置文件
			form.on('switch', function() {
				saveConfig();
			});
			form.on('select', function(data) {
				saveConfig();

				if(data.elem.name == "Auto_Running"){
					GHAPI.Win.autoRUN(data.elem.value).then(function(data){
						data = JSON.parse(data);
						if(data.code == "error"){
							layer.msg(data.msg);
						}
					})
				}
			});
		});
	});
});